当前位置:  开发笔记 > 编程语言 > 正文

为什么`this`在ES6的箭头功能中不起作用?

如何解决《为什么`this`在ES6的箭头功能中不起作用?》经验,为你挑选了1个好方法。

这是我的代码:

'use strict';

let obj = {
  username : 'Hans Gruber',
  hello: () => 'hello, ' + this.username
};
console.log(obj.hello());

但输出是:hello, undefined.

我希望输出是:hello, Hans Gruber.

我想我还没有理解this箭头功能?谁能给我一个明确的解释?



1> Barmar..:

箭头函数保存在this创建函数时创建的闭包中的绑定.所以它没有设置this调用函数的上下文.

在你的情况下,this注定要window当您创建的对象,所以this.usernamewindow.username不是obj.username.

从文档:

与函数表达式相比,箭头函数表达式(也称为胖箭头函数)具有更短的语法,并且在词汇上绑定该this

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有